Systems and methods for virtually weighted user input elements for performing critical actions

ABSTRACT

In an example implementation of the disclosed technology, a method includes receiving an indication of a gesture of an input object moving, at a rate of movement, from a first location of a presence-sensitive input device toward a second location of the presence-sensitive input device. The method also includes, responsive to determining that the rate of movement does not exceed a predetermined rate of movement, outputting, for display, a visual indicator moving from a first location of a display toward a second location of the display. The method also includes, responsive to determining that the rate of movement exceeds the predetermined rate of movement, outputting, for display, the visual indicator moving at a rate of movement that does not exceed the predetermined rate of movement.

CROSS-REFERENCE TO RELATED APPLICATIONS

This Application is a continuation application claiming priority under35 U.S.C. §120 to U.S. patent application Ser. No. 14/078,893 entitled“Systems and Methods for Virtually Weighted User Input Elements forPerforming Critical Actions,” filed 13 Nov. 2013, the contents of whichare incorporated by reference in their entirety as if fully set forthbelow.

BACKGROUND

Computing devices may display dialog elements when a user initiates acritical action such as a system reset, operating system update, orcancellation of an account. A dialog box with a warning message may bedisplayed to indicate that the intended action, once made, cannot beundone. Some dialog elements require the user to affirm his intention toperform a critical action by interacting with an input element such as aclick-button or checkbox. Computer users may be inundated with dialogelements on a daily basis, many of which may pertain to insignificant ornon-critical matters. For example, a user may encounter frequent pop-upadvertisements or routine status reports. The regular appearance ofunwanted dialog elements may distract a computer user from his primarytasks, and as a result, the user may adopt a habit of simply authorizingany action to be performed without carefully considering theconsequences.

SUMMARY

Some or all of the above needs may be addressed by certainimplementations of the disclosed technology. Certain implementations mayinclude methods, systems, and non-transitory computer-readable mediumfor virtually weighted user input elements for performing criticalactions.

According to an example implementation, a method is provided. The methodincludes receiving, at a computing device, an indication of a gesture ofan input object moving, at a rate of movement, from a first location ofa presence-sensitive input device toward a second location of thepresence-sensitive input device. The method also includes, responsive todetermining, by the computing device, that the rate of movement does notexceed a predetermined rate of movement, outputting, for display, avisual indicator moving from a first location of a display toward asecond location of the display. The first location of the displaycorresponds to the first location of the presence-sensitive inputdevice, and the second location of the display corresponds to a secondlocation of the presence-sensitive input device. The method alsoincludes, responsive to determining, by the computing device, that therate of movement exceeds the predetermined rate of movement, outputting,for display, the visual indicator moving at a rate of movement that doesnot exceed the predetermined rate of movement. The method also includes,responsive to determining, by the computing device, that the visualindicator, as output for display, is positioned at a third location ofthe display that is between the first location and second location ofthe display, outputting, for display, at least one text elementincluding at least one of an instructional message and cautionarymessage associated with a critical action. The method also includes,responsive to determining, by the computing device, that the visualindicator, as output for display, is positioned proximate the secondlocation of the display, performing an action.

According to another example implementation, a system is provided. Thesystem includes a display, a presence-sensitive input device, and one ormore processors in communication with the presence-sensitive inputdevice and display. The system also includes at least one memory incommunication with the one or more processors. The memory is configuredfor storing data and instructions that, when executed by the one or moreprocessors, cause the system to receive an indication of a gesture of aninput object moving, at a rate of movement, from a first location of apresence-sensitive input device toward a second location of thepresence-sensitive input device. The stored data and instructions, whenexecuted by the one or more processors, further cause the system to,responsive to determining that the rate of movement does not exceed apredetermined rate of movement, output, for display, a visual indicatormoving from a first location of the display toward a second location ofthe display. The first location of the display corresponds to the firstlocation of the presence-sensitive input device and the second locationof the display corresponds to the second location of thepresence-sensitive input device.

The stored data and instructions, when executed by the one or moreprocessors, further cause the system to, responsive to determining thatthe rate of movement exceeds the predetermined rate of movement, output,for display, the visual indicator moving at a rate of movement that doesnot exceed the predetermined rate of movement. The stored data andinstructions, when executed by the one or more processors, further causethe system to, responsive to determining that the visual indicator, asoutput for display, is positioned at a third location of the displaythat is between the first location and second location of the display,output, for display, at least one text element including at least one ofan instructional message and cautionary message associated with acritical action. The stored data and instructions, when executed by theone or more processors, further cause the system to, responsive todetermining that the visual indicator, as output for display, ispositioned proximate the second location of the display, perform anaction.

According to another example implementation, a non-transitorycomputer-readable medium is provided that stores data and instructionsthat, when executed by one or more processors in a system, cause thesystem to perform a method. The method includes receiving an indicationof a first gesture of an input object moving, at a rate of movement,from a first location of a presence-sensitive input device toward asecond location of the presence-sensitive input device. The method alsoincludes, responsive to determining that the rate of movement does notexceed a predetermined rate of movement, outputting, for display, avisual indicator moving from a first location of a display toward asecond location of the display. The first location of the displaycorresponds to the first location of the presence-sensitive input deviceand the second location of the display corresponds to a second locationof the presence-sensitive input device.

The method also includes, responsive to determining that the rate ofmovement exceeds the predetermined rate of movement, outputting, fordisplay, the visual indicator moving at a rate of movement that does notexceed the predetermined rate of movement. The method also includes,responsive to determining that the visual indicator, as output fordisplay, is positioned at a third location of the display that isbetween the first location and second location of the display,outputting, for display, at least one text element including at leastone of an instructional message and cautionary message associated with acritical action. The method also includes, responsive to determiningthat the visual indicator, as output for display, is positionedproximate the second location of the display, performing an action.

Other implementations, features, and aspects of the disclosed technologyare described in detail herein and are considered a part of the claimeddisclosed technology. Other implementations, features, and aspects canbe understood with reference to the following detailed description,accompanying drawings, and claims.

BRIEF DESCRIPTION OF THE FIGURES

Reference will now be made to the accompanying figures and flowdiagrams, which are not necessarily drawn to scale, and wherein:

FIG. 1 is a block diagram of an illustrative computer systemarchitecture 100, according to an example implementation.

FIGS. 2A-2D illustrate a computing device 200 according to an exampleimplementation.

FIGS. 3A and 3B illustrate a computing device 300 according to anotherexample implementation.

FIG. 4 is a flow diagram of a method 400 according to an exampleimplementation.

DETAILED DESCRIPTION

In certain implementations of the disclosed technology, characteristicsof the response associated with a displayed user input element may varyaccording to the manner in which the input gesture is performed. In anexample implementation, a user input element may be virtually weighted.As used herein, virtual weighting of a user input element may refer to alevel or rate of movement, acceleration, or other measure ofresponsiveness associated with a user input element of a computingdevice in response to one or more user input gestures. In an exampleimplementation, the computing device may be configured to limitresponsiveness associated with a displayed user input element such thata critical action, for example a system reset, operating system update,or cancellation of an account, will not be performed unless an inputgesture is performed in a particular manner.

In an example implementation, when a user enters an input gesture at aninput device, for example a touch-sensitive input device, the computingdevice determines a rate of movement in which the gesture was performed.In response to the computing device determining that the rate ofmovement of the gesture does not exceed a predetermined rate ofmovement, for example a maximum rate of movement, the computing deviceoutputs, for display, a visual indicator as advancing from a firstlocation of a display toward a second location of the display. Inresponse to the computing device determining that the rate of movementof the gesture exceeds the predetermined rate of movement, the computingdevice outputs, for display, the visual indicator as stopped inposition, or in an initial position, or moving in a directionsubstantially opposite the direction of the gesture (i.e. movingbackwards in position). As a result, a user may effectively be forced tofocus more carefully on correctly performing the input gesture, whichthereby may increase the likelihood that the user will read and considermessages provided throughout displayed text elements, such as cautionarymessages, before confirming his intent to perform the critical action.

In certain implementations, more than one type of user input element maybe associated with permitting a critical action to be performed. Forexample, the computing device may be configured such that a user mustinteract with two interface elements, in two different ways, in order toconfirm his intention to perform a critical action. The user is therebyrequired to perform an additional, separate and different type of inputgesture before the computing device will perform a critical action. Byrequiring the user to read various messages, such as cautionarymessages, as he enters a first input gesture and then requiring the userto enter a second, different type of input gesture, the user may be morelikely to fully consider the consequences of performing the criticalaction.

Some implementations of the disclosed technology will be described morefully hereinafter with reference to the accompanying drawings. Thisdisclosed technology may, however, be embodied in many different formsand should not be construed as limited to the implementations set forthherein.

In the following description, numerous specific details are set forth.However, it is to be understood that implementations of the disclosedtechnology may be practiced without these specific details. In otherinstances, well-known methods, structures and techniques have not beenshown in detail in order not to obscure an understanding of thisdescription. References to “one implementation,” “an implementation,”“example implementation,” “various implementations,” etc., indicate thatthe implementation(s) of the disclosed technology so described mayinclude a particular feature, structure, or characteristic, but notevery implementation necessarily includes the particular feature,structure, or characteristic. Further, repeated use of the phrase “inone implementation” does not necessarily refer to the sameimplementation, although it may.

Throughout the specification and the claims, the following terms take atleast the meanings explicitly associated herein, unless the contextclearly dictates otherwise. The term “connected” means that onefunction, feature, structure, or characteristic is directly joined to orin communication with another function, feature, structure, orcharacteristic. The term “coupled” means that one function, feature,structure, or characteristic is directly or indirectly joined to or incommunication with another function, feature, structure, orcharacteristic. The term “or” is intended to mean an inclusive “or.”Further, the terms “a,” “an,” and “the” are intended to mean one or moreunless specified otherwise or clear from the context to be directed to asingular form.

As used herein, unless otherwise specified the use of the ordinaladjectives “first,” “second,” “third,” etc., to describe a commonobject, merely indicate that different instances of like objects arebeing referred to, and are not intended to imply that the objects sodescribed must be in a given sequence, either temporally, spatially, inranking, or in any other manner.

Example implementations of the disclosed technology will now bedescribed with reference to the accompanying figures.

FIG. 1 is a block diagram illustrating an example implementation of acomputing device 100 in accordance with various aspects set forthherein. Certain aspects of FIG. 1 may be embodied in the computingdevice 200 as shown in FIGS. 2A-2D or the computing device 300 shown inFIGS. 3A and 3B. In FIG. 1, the computing device 100 may be configuredto include a processor 101, which may also be referred to as a computingdevice, that is operatively coupled to a display interface 103, aninput/output interface 105, a presence-sensitive display interface 107,a radio frequency (RF) interface 109, a network connection interface111, a camera interface 113, a sound interface 115, a random accessmemory (RAM) 117, a read only memory (ROM) 119, a storage medium 121, anoperating system 123, an application program 125, data 127, acommunication subsystem 131, a power source 133, another element, or anycombination thereof. In FIG. 1, the processor 101 may be configured toprocess computer instructions and data. The processor 101 may beconfigured to be a computer processor or a controller. For example, theprocessor 101 may include two computer processors. In one definition,data is information in a form suitable for use by a computer. It isimportant to note that a person having ordinary skill in the art willrecognize that the subject matter of this disclosure may be implementedusing various operating systems or combinations of operating systems.

In FIG. 1, the display interface 103 may be configured as acommunication interface and may provide functions for rendering video,graphics, images, text, other information, or any combination thereof onthe display. In one example, a communication interface may include aserial port, a parallel port, a general purpose input and output (GPIO)port, a game port, a universal serial bus (USB), a micro-USB port, ahigh definition multimedia (HDMI) port, a video port, an audio port, aBluetooth port, a near-field communication (NFC) port, another likecommunication interface, or any combination thereof. In one example, thedisplay interface 103 may be operatively coupled to a local display,such as a touch-screen display associated with a mobile device. Inanother example, the display interface 103 may be configured to providevideo, graphics, images, text, other information, or any combinationthereof for an external/remote display 141 that is not necessarilyconnected to the mobile computing device. In one example, a desktopmonitor may be utilized for mirroring or extending graphical informationthat may be presented on a mobile device. In another example, thedisplay interface 103 may wirelessly communicate, for example, via thenetwork connection interface 111 such as a Wi-Fi transceiver to theexternal/remote display 141.

In the current embodiment, the input/output interface 105 may beconfigured to provide a communication interface to an input device,output device, or input and output device. The computing device 100 maybe configured to use an output device via the input/output interface105. A person of ordinary skill will recognize that an output device mayuse the same type of interface port as an input device. For example, aUSB port may be used to provide input to and output from the computingdevice 100. The output device may be a speaker, a sound card, a videocard, a display, a monitor, a printer, an actuator, an emitter, asmartcard, another output device, or any combination thereof. Thecomputing device 100 may be configured to use an input device via theinput/output interface 105 to allow a user to capture information intothe computing device 100. The input device may include a mouse, atrackball, a directional pad, a trackpad, a presence-sensitive display,a scroll wheel, a digital camera, a digital video camera, a web camera,a microphone, a sensor, a smartcard, and the like. The sensor may be,for instance, an accelerometer, a gyroscope, a tilt sensor, a forcesensor, a magnetometer, an optical sensor, a proximity sensor, anotherlike sensor, or any combination thereof. For example, the input device115 may be an accelerometer, a magnetometer, a digital camera, amicrophone, and an optical sensor.

In FIG. 1, the presence-sensitive display interface 107 may beconfigured to provide a communication interface to a pointing device ora presence-sensitive display 108 such as a touch screen. In onedefinition, a presence-sensitive display is an electronic visual displaythat may detect the presence and location of a touch, gesture, or objectnear its display area. In one definition, the term “near” means on,proximate or associated with. In another definition, the term “near” isthe extended spatial location of. The RF interface 109 may be configuredto provide a communication interface to RF components such as atransmitter, a receiver, and an antenna. The network connectioninterface 111 may be configured to provide a communication interface toa network 143 a. The network 143 a may encompass wired and wirelesscommunication networks such as a local-area network (LAN), a wide-areanetwork (WAN), a computer network, a wireless network, atelecommunications network, another like network or any combinationthereof. For example, the network 143 a may be a cellular network, aWi-Fi network, and a near-field network. As previously discussed, thedisplay interface 103 may be in communication with the networkconnection interface 111, for example, to provide information fordisplay on a remote display that is operatively coupled to the computingdevice 100. The camera interface 113 may be configured to provide acommunication interface and functions for capturing digital images orvideo from a camera. The sound interface 115 may be configured toprovide a communication interface to a microphone or speaker.

In this embodiment, the RAM 117 may be configured to interface via thebus 102 to the processor 101 to provide storage or caching of data orcomputer instructions during the execution of software programs such asthe operating system, application programs, and device drivers. In oneexample, the computing device 100 may include at least one hundred andtwenty-eight megabytes (128 Mbytes) of RAM. The ROM 119 may beconfigured to provide computer instructions or data to the processor101. For example, the ROM 119 may be configured to be invariantlow-level system code or data for basic system functions such as basicinput and output (I/O), startup, or reception of keystrokes from akeyboard that are stored in a non-volatile memory. The storage medium121 may be configured to include memory such as RAM, ROM, programmableread-only memory (PROM), erasable programmable read-only memory (EPROM),electrically erasable programmable read-only memory (EEPROM), magneticdisks, optical disks, floppy disks, hard disks, removable cartridges,flash drives. In one example, the storage medium 121 may be configuredto include an operating system 123, an application program 125 such as aweb browser application, a widget or gadget engine or anotherapplication, and a data file 127.

In FIG. 1, the computing device 101 may be configured to communicatewith a network 143 b using the communication subsystem 131. The network143 a and the network 143 b may be the same network or networks ordifferent network or networks. The communication functions of thecommunication subsystem 131 may include data communication, voicecommunication, multimedia communication, short-range communications suchas Bluetooth, near-field communication, location-based communicationsuch as the use of the global positioning system (GPS) to determine alocation, another like communication function, or any combinationthereof. For example, the communication subsystem 131 may includecellular communication, Wi-Fi communication, Bluetooth communication,and GPS communication. The network 143 b may encompass wired andwireless communication networks such as a local-area network (LAN), awide-area network (WAN), a computer network, a wireless network, atelecommunications network, another like network or any combinationthereof. For example, the network 143 b may be a cellular network, aWi-Fi network, and a near-field network. The power source 133 may beconfigured to provide an alternating current (AC) or direct current (DC)power to components of the computing device 100.

In FIG. 1, the storage medium 121 may be configured to include a numberof physical drive units, such as a redundant array of independent disks(RAID), a floppy disk drive, a flash memory, a USB flash drive, anexternal hard disk drive, thumb drive, pen drive, key drive, ahigh-density digital versatile disc (HD-DVD) optical disc drive, aninternal hard disk drive, a Blu-Ray optical disc drive, a holographicdigital data storage (HDDS) optical disc drive, an external mini-dualin-line memory module (DIMM) synchronous dynamic random access memory(SDRAM), an external micro-DIMM SDRAM, a smartcard memory such as asubscriber identity module or a removable user identity (SIM/RUIM)module, other memory, or any combination thereof. The storage medium 121may allow the computing device 100 to access computer-executableinstructions, application programs or the like, stored on transitory ornon-transitory memory media, to off-load data, or to upload data. Anarticle of manufacture, such as one utilizing a communication system maybe tangibly embodied in storage medium 122, which may comprise acomputer-readable medium.

FIGS. 2A-2D illustrate an example implementation of a computing device200 comprising a presence-sensitive display 202 displaying text content204. The presence-sensitive display 202 is configured to, in addition todisplaying visual content, function as an input device to receive inputgestures entered by an input object such as a stylus or finger (notshown). As shown, the computing device 200 displays a dialog box 206with a first text element 208 a and a first user input element 210 onthe presence-sensitive display 202. In the example implementation shown,the first text element 208 a provides instructions (“Slide to factoryreset your device”) that the user must follow in order to permit afactory reset. The computing device 200 is configured to output thefirst user input element 210 for display such that, as displayed, thefirst user input element 210 is a slide switch with a visual, slidingposition indicator 210 a (“RESET”). The computing device 200 isconfigured to output the position indicator 210 a to, as displayed, movelaterally in response to a user input gesture at the presence-sensitivedisplay 202, for example a slide gesture or drag gesture. It is to beunderstood that the input functionality may alternatively be performedseparate from the display functionality, for example through the use ofan input device in communication with a remote display.

In response to receiving an indication of an input gesture, thecomputing device 200 may output the position indicator 210 a for displaysuch that, as displayed, the position indicator 210 a advances from aninitial position at a first location 212 a of the presence-sensitivedisplay 202 to an end position at an end location 212 d (see FIG. 2D) ofthe presence-sensitive display 202. The computing device 200 may detectthe input gesture by receiving an indication that an input object hasbeen positioned at the presence-sensitive display 202 proximate thefirst location 212 a and then moved laterally according to slide gestureor drag gesture. In response to receiving the indication, the computingdevice may output the position indicator 210 a for display such that, asdisplayed, it advances from the initial position at the first location212 a (FIG. 2A) to the end position at the fourth location 212 d (FIG.2D). As the position indicator 210 a, as displayed, advances from theinitial position to the end position, it moves through intermediatepositions that include a second position at a second location 212 b(FIG. 2B) and a third position at a third location 212 c (FIG. 2C).

The computing device 200 is configured to output caution messages (inthe text elements 208 a-208 d) for display as the position indicator 210a, as displayed, advances towards the end position. The nature of themessage content may change as the position indicator 210 a advances inposition. For example, the content of a message may increase in urgencyin proportion to the relative position of the position indicator 210 a.In the example implementation of FIGS. 2A-2D, when the positionindicator 210 a is proximate the first location 212 a (FIG. 2A), aninstructional message 208 a is displayed (“Slide to factory reset yourdevice”), and when the position indicator 210 a is proximate the secondlocation 212 b, a cautionary message 208 b is displayed (“Are yousure?”). As shown in FIG. 2C, when the position indicator 210 c reachesa position proximate the third location 212 c, a message 208 c that isfurther cautionary is displayed (“All data will be deleted”). As shownin FIG. 2D, when the position indicator 210 a reaches a positionproximate the fourth location 212 d, an even more cautionary message 208d is displayed (“This action cannot be undone”).

Characteristics of the response associated with a displayed user inputelement may vary according to the manner in which the input gesture isperformed. In an example implementation, a user input element may bevirtually weighted. In an example implementation, the computing device200 may be configured to limit responsiveness associated with adisplayed user input element such that a critical action will not beperformed unless an input gesture is performed in a particular manner.

Referring again to FIGS. 2A-2D, in an example implementation, thecomputing device 200 determines a rate of movement associated with theinput gesture by detecting a rate at which the first gesture is enteredby an input object at the presence-sensitive display 202 in a directionfrom a first location of the presence-sensitive display 202 towards asecond location of the presence-sensitive display 202. In response todetermining that the rate of movement exceeds a predetermined maximumrate of movement, the computing device 200 may output the positionindicator 210 a for display such that, as displayed, the positionindicator 210 a advances from the first location of the display 202towards the second location of the display 202 at a rate that is lessthan the predetermined maximum rate of movement.

In an example implementation, the computing device 200 may be configuredsuch that, as displayed, the responsiveness of the slide switch 210 maydecrease as the position indicator 210 a advances closer to the endposition at the fourth location 212 d. In an example implementation, theslide switch 210 may be configured such that the position indicator 210a is effectively more difficult to advance towards the end position wheninstructional or cautionary messages are displayed. This may effectivelyrequire a user to perform an input gesture slowly such that the positionindicator 210 a is effectively dragged forward at a slow rate. Also, thecomputing device 200 may output the slide switch 210 for display suchthat, if the user input gesture exceeds the maximum rate or if an inputobject is removed from the presence-sensitive display 202 before theposition indicator 210 a reaches an end position, the position indicator210 a, as displayed, stops in position or moves backwards towards theinitial position.

In addition, as shown in the example implementation of FIGS. 2A-2D, thedialog box 206 (represented as 206 a, 206 b, 206 c, and 206 d respectiveto FIGS. 2A, 2B, 2C, and 2D), may be displayed in a color that changesfrom a neutral color when the position indicator 210 a is positionedproximate the first location 212 a and second location 212 b, to a moreintense color when the position indicator 210 a is positioned proximatethe third location 212 c, and to an even more intense color when theposition indicator 210 a is positioned proximate the fourth location 212d. For example, the dialog boxes 206 a and 206 b are grey, the dialogbox 206 b is orange, and the dialog box 206 d is red. The computingdevice 200 may be configured to change other visual aspects of contentthat is output for display on the presence-sensitive display 202,according to user interaction. For example, the displayed messages 208a-208 d may increase in font size and the color of the positionindicator 210 a may change as the slide switch 210 advances furthertowards the end position.

Now referring in particular to FIG. 2D, in an example implementation,more than one type of user input element may be associated withpermitting a critical action to be performed. For example, the computingdevice 200 may be configured such that a user must interact with twointerface elements, in two different ways, in order to confirm hisintention to perform a critical action. As shown in FIG. 2D, when theposition indicator 210 a reaches the end position proximate the fourthlocation 212 d, a second user input element 214 (input button) is outputfor display. In an example implementation, when the position indicator210 a reaches or nears the end position proximate the fourth location212 d, the input button 214 is output for display, which requires adifferent type of input gesture to actuate, for example an isolatedtouch gesture, as compared to the slide gesture for moving the positionindicator 210 a. The user is thereby required to perform an additional,separate and different type of input gesture before the computing device200 will perform a critical action.

In an example implementation, a user may advance the position indicator210 a, as displayed, by performing a slide gesture with one finger, andthen, once the position indicator 210 a has reached the end position,i.e. the position indicator 210 a, as displayed, is positioned positionproximate the fourth location 212 d, the user must enter a second typeof input gesture at a location of the presence-sensitive display 202proximate the input button 214 before the critical action will beperformed. For example, the user may be required to place a secondfinger on the presence-sensitive display 202 proximate the input button214 while his first finger remains on the presence-sensitive display 202proximate the fourth location 212 d. By requiring the user to read thevarious messages 208 as he enters the first input gesture and thenrequiring the user to enter a second, different type of input gesture,the user may be more likely to fully consider the consequences ofperforming the critical action.

Now referring to FIGS. 3A and 3B, in an example implementation, textelements 308 are output for presentation on a presence-sensitive display302 of a computing device 300. The computing device 300 is configured toenable vertical scrolling of the text elements 308 in response toreceiving an indication that a user input gesture, such as verticaldrag, swipe, or fling gesture from an input object such as a stylus orfinger, has been entered at the presence-sensitive display 302 proximatea displayed user input element 306. The computing device 300 may beconfigured to, in response to receiving an indication that the userinput gesture has been entered, output the user input element 306 fordisplay as a vertical scroll bar with a visual position indicator 306 athat, as displayed, advances from an initial position proximate a firstlocation 304 a of the presence-sensitive display 302 to an end positionproximate a second location 304 b of the presence-sensitive display 302.It is to be understood that the input functionality may alternatively beperformed separate from the display functionality, for example throughthe use of an input device in communication with a remote display.

In an example implementation, the computing device 300 receives anindication that slide gesture has been entered at the presence-sensitivedisplay 302 proximate the position indicator 306 a, such that, inresponse, the computing device outputs the text elements 308 for displaysuch that, as displayed, the text elements 308 scroll vertically. In theexample implementation of FIGS. 3A and 3B, the computing device 300 hasreceived an indication that a user has entered a gesture thatcorresponds to an action to cancel an account. Accordingly, thecomputing device 300 outputs the text elements 308 such that, asdisplayed, the text elements 308 provide instructional messages,including “Scroll down to cancel” and cautionary messages including “Youwill lose access to all of your existing offers and promotions” (FIG.3A).

Content and visual aspects of the displayed messages may change as thetext elements 308 are progressively scrolled in position. As shown inFIG. 3B, when the position indicator 306 a reaches a position proximatethe end position, a cautionary message (“All of your data will bedeleted, including your email messages, photos, and documents”) isdisplayed within a colored text box 310 to visually emphasize theimportance of the message. Further, a colored dialog box 312 with aninput button 314 (“Cancel Account”) is displayed with a cautionarymessage (“You cannot undo this action”) in an increased font size. Theinput button 314 requires a different type of gesture to actuate, forexample a touch gesture at a location of the presence-sensitive display302 corresponding to the user interaction button 314, as compared to theslide gesture for scrolling through the text elements 308. As such, twoseparate and different types of input gestures must be entered beforethe computing device 300 will perform the critical action (cancel theaccount).

Characteristics of the response associated with a displayed user inputelement may vary according to the manner in which the input gesture isperformed. In an example implementation, the computing device 300 may beconfigured to limit responsiveness associated with a displayed userinput element such that a critical action will not be performed unlessan input gesture is performed in a particular manner. In an exampleimplementation, the computing device 300 determines a rate of movementassociated with the input gesture, by detecting a rate at which thefirst gesture is performed by an input object in a direction from afirst location of the presence-sensitive display 302 towards a secondlocation of the presence-sensitive display 302. In response todetermining that the rate of movement exceeds a predetermined maximumrate of movement, the computing device 300 may output the positionindicator 306 a for display such that, as displayed, the positionindicator 306 a advances from the first location towards the secondlocation at a rate that is less than the predetermined maximum rate ofmovement.

In an example implementation, the computing device 300 may be configuredto output the text elements 308 for display such that, in response toreceiving an indication that a slide gesture has been entered, at thepresence-sensitive display 302, with a rate of movement that exceeds apredetermined maximum rate, the computing device 300 will nonethelessoutput the text elements 308 for display such that, as displayed, thetext elements 308 scroll at a rate that is equal to or less than themaximum rate. This may prevent a user from rapidly moving through thecautionary messages without taking time to consider the implications ofcancelling his account.

With reference to FIGS. 3A and 3B, in an example implementation, thecomputing device 300 may be configured to output the vertical scroll bar306 and position indicator 306 a for display such that responsiveness ofthe vertical scroll bar 306, as displayed, decreases as the positionindicator 306 a nears the end position. In an example implementation,the computing device 300 is configured such that, as displayed, theresponsiveness of the scroll bar 306 varies in proportion to theproximity the position of the position indicator 306 a relative to theend position. In an example implementation, the computing device 300 maybe configured to output the scroll bar 306 and position indicator 306 afor display such that, as displayed, the position indicator 306 a iseffectively more difficult to advance towards the end position wheninstructional or cautionary messages are displayed. A user is therebyrequired to perform an input gesture slowly such that the scroll bar 306is effectively dragged downwards at a slow rate.

The computing device 300 may also be configured to, in response toreceiving an indication that an input gesture has been entered at thepresence-sensitive display 302 at a rate of movement that exceeds apredetermined maximum rate, output the position indicator 306 a fordisplay such that, as displayed, the position indicator 306 a stops inposition or moves backwards towards an initial position. As a result, auser may effectively be forced to focus more carefully on correctlyperforming the input gesture, which thereby may increase the likelihoodthat the user will read and consider messages provided throughout thetext elements 308, such as cautionary messages, before confirming hisintent to perform the critical action.

FIG. 4 is a flow diagram of a method 400 according to an exampleimplementation. The method 400 begins at block 402, where a computingdevice receives an indication of a first gesture entered by an inputobject from a first location of an input device toward a second locationof the input device at a first rate of movement. At block 404,responsive to determining, by the computing device, that the first rateof movement does not exceed a predetermined rate of movement, thecomputing devices outputs, for display, a visual indicator as advancingfrom a first location of a display toward a second location of thedisplay. The first location of the display corresponds to the firstlocation of the input device and the second position of the displaycorresponds to a second location of the input device. At block 406,responsive to determining, by the computing device, that the first rateof movement exceeds the predetermined rate of movement, the computingdevice outputs, for display, the visual indicator as not advancing inposition at a rate of movement that exceeds the predetermined rate ofmovement.

In an example implementation, the visual indicator is associated with afirst user input element that is output, by the computing device, fordisplay. Outputting, by the computing device, for display, the visualindicator as not advancing in position at a rate of movement thatexceeds the predetermined rate of movement may include outputting, bythe computing device, for display, the visual indicator as advancing inposition at a rate of movement that does not exceed the predeterminedrate of movement. Alternatively, outputting, by the computing device,for display, the visual indicator as not advancing in position at a rateof movement that exceeds the predetermined rate of movement may includeoutputting, by the computing device, for display, the visual indicatoras stopped in position, or in an initial position, or moving in adirection substantially opposite the direction of the gesture (i.e.moving backwards in position).

In an example implementation, responsive to determining, by thecomputing device, that the visual indicator, as output for display, ispositioned at a location of the display that is between the firstlocation and second location of the display, the computing deviceoutputs, for display, at least one text element. The text element mayinclude an instructional message and/or cautionary message associatedwith a critical action. Responsive to determining, by the computingdevice, that the visual indicator, as output for display, is positionedproximate the second location of the display, the computing device mayperform a critical action.

In an example implementation, responsive to determining, by thecomputing device, that the visual indicator, as output for display, ispositioned proximate the second location of the display, the computingdevice may output, for display, a second user input element at a thirdlocation of the display. Responsive to receiving, at the computingdevice, an indication that a second gesture has been entered at alocation of the input device that corresponds to a location of thedisplay at which the second user input element is output for display,the computing device may perform a critical action.

Certain implementations of the disclosed technology are described abovewith reference to block and flow diagrams of systems and methods and/orcomputer program products according to example implementations of thedisclosed technology. It will be understood that one or more blocks ofthe block diagrams and flow diagrams, and combinations of blocks in theblock diagrams and flow diagrams, respectively, can be implemented bycomputer-executable program instructions. Likewise, some blocks of theblock diagrams and flow diagrams may not necessarily need to beperformed in the order presented, or may not necessarily need to beperformed at all, according to some implementations of the disclosedtechnology.

These computer-executable program instructions may be loaded onto ageneral-purpose computer, a special-purpose computer, a processor, orother programmable data processing apparatus to produce a particularmachine, such that the instructions that execute on the computer,processor, or other programmable data processing apparatus create meansfor implementing one or more functions specified in the flow diagramblock or blocks. These computer program instructions may also be storedin a computer-readable memory that can direct a computer or otherprogrammable data processing apparatus to function in a particularmanner, such that the instructions stored in the computer-readablememory produce an article of manufacture including instruction meansthat implement one or more functions specified in the flow diagram blockor blocks.

Implementations of the disclosed technology may provide for a computerprogram product, comprising a computer-usable medium having acomputer-readable program code or program instructions embodied therein,said computer-readable program code adapted to be executed to implementone or more functions specified in the flow diagram block or blocks. Thecomputer program instructions may also be loaded onto a computer orother programmable data processing apparatus to cause a series ofoperational elements or steps to be performed on the computer or otherprogrammable apparatus to produce a computer-implemented process suchthat the instructions that execute on the computer or other programmableapparatus provide elements or steps for implementing the functionsspecified in the flow diagram block or blocks.

Accordingly, blocks of the block diagrams and flow diagrams supportcombinations of means for performing the specified functions,combinations of elements or steps for performing the specified functionsand program instruction means for performing the specified functions. Itwill also be understood that each block of the block diagrams and flowdiagrams, and combinations of blocks in the block diagrams and flowdiagrams, can be implemented by special-purpose, hardware-based computersystems that perform the specified functions, elements or steps, orcombinations of special-purpose hardware and computer instructions.

While certain implementations of the disclosed technology have beendescribed in connection with what is presently considered to be the mostpractical and various implementations, it is to be understood that thedisclosed technology is not to be limited to the disclosedimplementations, but on the contrary, is intended to cover variousmodifications and equivalent arrangements included within the scope ofthe appended claims. Although specific terms are employed herein, theyare used in a generic and descriptive sense only and not for purposes oflimitation.

This written description uses examples to disclose certainimplementations of the disclosed technology, including the best mode,and also to enable any person skilled in the art to practice certainimplementations of the disclosed technology, including making and usingany devices or systems and performing any incorporated methods. Thepatentable scope of certain implementations of the disclosed technologyis defined in the claims, and may include other examples that occur tothose skilled in the art. Such other examples are intended to be withinthe scope of the claims if they have structural elements that do notdiffer from the literal language of the claims, or if they includeequivalent structural elements with insubstantial differences from theliteral language of the claims.

What is claimed is:
 1. A method, comprising: receiving, at a computingdevice, one or more indications of a plurality of gestures of an inputobject moving at a plurality of rates of movement from a first locationof a presence-sensitive input device toward a second location of thepresence-sensitive input device; responsive to determining that a firstgesture of the plurality of gestures moves at a first rate of movementthat does not exceed a predetermined rate of movement, outputting, fordisplay, a visual indicator moving from a first location of a displaytoward a second location of the display, wherein the first location ofthe display corresponds to the first location of the presence-sensitiveinput device and the second location of the display corresponds to thesecond location of the presence-sensitive input device, and wherein thevisual indicator is associated with a first user input element that isoutput for display; responsive to determining that a second gesture ofthe plurality of gestures moves at a second rate of movement thatexceeds the predetermined rate of movement, outputting, for display, thevisual indicator moving at a rate of movement that does not exceed thepredetermined rate of movement, and wherein the responsiveness of thefirst user input element changes based in part on the distance of thevisual indicator from the second location of the display such that theresponsiveness of the first user input element decreases in proportionto the distance of the visual indicator from the second location of thedisplay as the distance of the visual indicator from the second locationof the display decreases; and responsive to determining, by thecomputing device, that the visual indicator, as output for display, ispositioned proximate the second location of the display, performing anaction.
 2. The method of claim 1, wherein outputting, for display, thevisual indicator moving at the rate of movement that does not exceed thepredetermined rate of movement comprises outputting, by the computingdevice, for display, the visual indicator advancing in position at therate of movement that does not exceed the predetermined rate ofmovement.
 3. The method of claim 1, wherein outputting, for display, thevisual indicator moving at the rate of movement that does not exceed thepredetermined rate of movement comprises outputting, by the computingdevice, for display, the visual indicator at an initial position of thevisual indicator.
 4. The method of claim 1, wherein outputting, fordisplay, the visual indicator moving at the rate of movement that doesnot exceed the predetermined rate of movement comprises outputting, bythe computing device, for display, the visual indicator moving in adirection substantially opposite the direction of the respectivegesture.
 5. The method of claim 1, wherein the action performed inresponse to determining that the visual indicator, as output fordisplay, is positioned proximate the second location of the displayincludes outputting, by the computing device, for display, a second userinput element at a third location of the display.
 6. The method of claim5, wherein the second user input element is output for displaysimultaneously with the first user input element.
 7. The method of claim5, further comprising: responsive to receiving, at the computing device,an indication of a gesture at a location of the presence-sensitive inputdevice that corresponds to the third location of the display at whichthe second user input element is output for display, performing, by thecomputing device, a second action.
 8. A system, comprising: a display; apresence-sensitive input device; one or more processors in communicationwith the presence-sensitive input device and display; and at least onememory in communication with the one or more processors and configuredfor storing data and instructions that, when executed by the one or moreprocessors, cause the system to: receive one or more indications of aplurality of gestures of an input object moving at a plurality of ratesof movement from a first location of a presence-sensitive input devicetoward a second location of the presence-sensitive input device;responsive to determining that a first gesture of the plurality ofgestures moves at a first rate of movement that does not exceed apredetermined rate of movement, output, for display, a visual indicatormoving from a first location of the display toward a second location ofthe display, wherein the first location of the display corresponds tothe first location of the presence-sensitive input device and the secondlocation of the display corresponds to the second location of thepresence-sensitive input device, and wherein the visual indicator isassociated with a first user input element that is output for display;responsive to determining that a second gesture of the plurality ofgestures moves at a second rate of movement that exceeds thepredetermined rate of movement, output, for display, the visualindicator moving at a rate of movement that does not exceed thepredetermined rate of movement, and wherein and the responsiveness ofthe first user input element changes based in part on the distance ofthe visual indicator from the second location of the display such thatthe responsiveness of the first user input element decreases inproportion to the distance of the visual indicator from the secondlocation of the display as the distance of the visual indicator from thesecond location of the display decreases; and responsive to determiningthat the visual indicator, as output for display, is positionedproximate the second location of the display, perform an action.
 9. Thesystem of claim 8, wherein outputting, for display, the visual indicatormoving at the rate of movement that does not exceed the predeterminedrate of movement comprises outputting, for display, the visual indicatoradvancing in position at the rate of movement that does not exceed thepredetermined rate of movement.
 10. The system of claim 8, whereinoutputting, for display, the visual indicator moving at the rate ofmovement that does not exceed the predetermined rate of movementcomprises outputting, for display, the visual indicator at an initialposition of the visual indicator.
 11. The system of claim 8, whereinoutputting, for display, the visual indicator moving at the rate ofmovement that does not exceed the predetermined rate of movementcomprises outputting, for display, the visual indicator moving in adirection substantially opposite the direction of the respectivegesture.
 12. The system of claim 8, wherein the action performed inresponse to determining that the visual indicator, as output fordisplay, is positioned proximate the second location of the displayincludes outputting, for display, a second user input element at a thirdlocation of the display.
 13. The system of claim 12, wherein the seconduser input element is output for display simultaneously with the firstuser input element.
 14. The system of claim 12, wherein the stored dataand instructions, when executed by the one or more processors, furthercause the system to: responsive to receiving an indication of a gestureat a location of the presence-sensitive input device that corresponds tothe third location of the display at which the second user input elementis output for display, perform a second action.
 15. A non-transitorycomputer-readable medium that stores data and instructions that, whenexecuted by one or more processors in a system, cause the system toperform a method comprising: receiving one or more indications of aplurality of gestures of an input object moving at a plurality of ratesof movement from a first location of a presence-sensitive input devicetoward a second location of the presence-sensitive input device;responsive to determining that a first gesture of the plurality ofgestures moves at a first rate of movement that does not exceed apredetermined rate of movement, outputting, for display, a visualindicator moving from a first location of a display toward a secondlocation of the display, wherein the first location of the displaycorresponds to the first location of the presence-sensitive input deviceand the second location of the display corresponds to the secondlocation of the presence-sensitive input device, and wherein the visualindicator is associated with a first user input element that is outputfor display; responsive to determining that a second gesture of theplurality of gestures moves at a second rate of movement that exceedsthe predetermined rate of movement, outputting, for display, the visualindicator moving at a rate of movement that does not exceed thepredetermined rate of movement, and wherein the responsiveness of thefirst user input element changes based in part on the distance of thevisual indicator from the second location of the display such that theresponsiveness of the first user input element decreases in proportionto the distance of the visual indicator from the second location of thedisplay as the distance of the visual indicator from the second locationof the display decreases; and responsive to determining that the visualindicator, as output for display, is positioned proximate the secondlocation of the display, performing an action.
 16. The non-transitorycomputer-readable medium of claim 15, wherein outputting, for display,the visual indicator moving at the rate of movement that does not exceedthe predetermined rate of movement comprises outputting, for display,the visual indicator advancing in position at the rate of movement thatdoes not exceed the predetermined rate of movement.
 17. Thenon-transitory computer-readable medium of claim 15, wherein outputting,for display, the visual indicator moving at the rate of movement thatdoes not exceed the predetermined rate of movement comprises outputting,for display, the visual indicator at an initial position of the visualindicator.
 18. The non-transitory computer-readable medium of claim 15,wherein outputting, for display, the visual indicator moving at the rateof movement that does not exceed the predetermined rate of movementcomprises outputting, for display, the visual indicator moving in adirection substantially opposite the direction of the respectivegesture.
 19. The non-transitory computer-readable medium of claim 15,wherein the action performed in response to determining that the visualindicator, as output for display, is positioned proximate the secondlocation of the display includes outputting, for display, a second userinput element at a third location of the display.
 20. The non-transitorycomputer-readable medium of claim 19, wherein the method furthercomprises: responsive to receiving, at the computing device, anindication of a gesture at a location of the presence-sensitive inputdevice that corresponds to the third location of the display at whichthe second user input element is output for display, performing a secondaction.